// TransformDoc.h : interface of the CTransformDoc class
//


#pragma once

#include "DragNode.h"
#include "SelectNode.h"
#include "SKPipeline.h"
#include "XMLParser.h"
#include "CopyKnot.h"

class CTransformDoc : public CDocument
{
protected: // create from serialization only
	CTransformDoc();
	DECLARE_DYNCREATE(CTransformDoc)

// Attributes
public:
	CSKInfo*				GetSKInfo()
	{ return &m_oSKInfo; }
	CDragNodeProcessCard*	GetDragNodeDef() { return &m_oDragNodeDef; }
	CSelectNodeProcessCard*	GetSelectNodeDef() { return &m_oSelectNodeDef; }
	CCopyKnotProcessCard*	GetCopyKnotDef() { return &m_oCopyKnotDef; }
	void					SetMainFrame(CMainFrame* pMainFrame)
	{ m_pMainFrame = pMainFrame; }
	CMainFrame*				GetMainFrame()
	{ return m_pMainFrame; }
	CXMLParser*				GetXMLParser()
	{ return &m_oXMLParser; }

public:
	bool					Save(LPCTSTR szXMLPath);
	bool					Load(LPCTSTR szXMLPath);

// Operations
public:
	void					Update();

// Overrides
public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);

// Implementation
public:
	virtual ~CTransformDoc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	DECLARE_MESSAGE_MAP()


private:
	CSelectNodeProcessCard	m_oSelectNodeDef;
	CDragNodeProcessCard	m_oDragNodeDef;
	CCopyKnotProcessCard	m_oCopyKnotDef;
	CSKInfo					m_oSKInfo;
	CXMLParser				m_oXMLParser;
	CMainFrame*				m_pMainFrame;
};


